home *** CD-ROM | disk | FTP | other *** search
/ Zine 9 / Zine - Issue 09 (1991-06)(Brainstorm).adf / sources / stc_killer.s < prev    next >
Text File  |  2022-11-05  |  4KB  |  192 lines

  1. ;
  2. ;decruncher v1.5 ->systemkiller
  3. ;   for
  4. ;StoneCracker v2.6a/v2.70/v2.71
  5. ;
  6. ;(c) 1990 Mr.Spiv of Cave
  7. ;
  8. ;
  9.  
  10.  
  11. kst:        lea    $dff000,a6
  12.         move.w    #$7fff,d0
  13.         move.w    d0,$9a(a6)
  14.         move.w    d0,$96(a6)
  15.         move.w    d0,$9e(a6)
  16.         move.w    d0,$9c(a6)
  17.         lea    $bfd100,a5
  18.         move.b    #%10000001,(a5)
  19.         nop
  20.         nop
  21.         move.b    #%11111001,(a5)
  22.         move.l    $20.w,a5
  23.         lea    ksuper(pc),a4
  24.         move.l    a4,$20.w
  25. ksuper:        move.w    #$2700,sr
  26.         move.l    a5,$20.w
  27. ksystem:    lea    $111111.l,a7
  28. kuser:        lea    $222222.l,a0
  29.         move.l    a0,usp
  30.         lea    kcolour(pc),a0
  31. klocation    lea    $333333.l,a1
  32.         move.l    a1,a4
  33.         move.w    #kdata-kcolour+18-1,d0    ;don't remove 18
  34. ktrans:        move.b    (a0)+,(a1)+
  35.         dbf    d0,ktrans
  36.         lea    18+kdata(pc),a3
  37.         jmp    (a4)
  38.  
  39. kcolour:    lea    $dff006,a6
  40.         moveq    #0,d7
  41.         moveq    #0,d6
  42.         moveq    #0,d5
  43.         move.b    3+kdata(pc),d7
  44.         move.b    16+kdata(pc),d5        ;sijoita scanteho
  45.         move.b    17+kdata(pc),d6        ;sijoita normteho
  46.         move.l    a3,a0
  47.         cmp.l    2+kworkstart(pc),a0
  48.         bls.s    kplaceok
  49.         move.l    2+kworkstart(pc),a0
  50.         move.l    12+kdata(pc),d0
  51. ktrans2:    move.b    (a3)+,(a0)+
  52.         subq.l    #1,d0
  53.         bne.s    ktrans2
  54.         move.l    2+kworkstart(pc),a0
  55.  
  56. kplaceok:    add.l    12+kdata(pc),a0        ;crunched lenght (pass3)
  57.         move.l    2+kworkend(pc),a1    ;
  58.         move.l    a1,a2
  59.         sub.l    4+kdata(pc),a2        ;sub pass2 crunched lenght
  60.         lea    kgetnew(pc),a5
  61.         lea    krorit(pc),a4
  62.         move.l    -(a0),d0
  63.  
  64. kdecrunchloop:    moveq    #0,d1
  65.         add.l    d0,d0
  66.         bne.s    kno_ovl1
  67.         jsr    (a5)
  68. kno_ovl1:    bcc.L    kheader_0
  69.         add.l    d0,d0
  70.         bne.s    kno_ovl2
  71.         jsr    (a5)
  72. kno_ovl2:    bcs.s    kheader_1xx
  73.         moveq    #8-1,d3            ;header 10
  74.         moveq    #2-1,d4
  75.         bra.s    kheader_110
  76. kheader_1xx:    addx.w    d1,d1
  77.         add.l    d0,d0
  78.         bne.s    kno_ovl3
  79.         jsr    (a5)
  80. kno_ovl3:    addx.w    d1,d1            ;
  81.         moveq    #9-1,d3
  82.         moveq    #3-1,d4
  83.         cmp.w    #2,d1
  84.         beq.s    kheader_110
  85.         moveq    #10-1,d3        ;header 1+11
  86.         addq.w    #1,d4
  87. kheader_110:    jsr    (a4)
  88. kcopyloop:    move.b    -1(a1,d2.w),-(a1)
  89.         dbf    d4,kcopyloop
  90. kcontinue:    cmp.l    a1,a2
  91.         blo.s    kdecrunchloop
  92.  
  93. kworkstart:    lea    $444444.l,a0        ;
  94. kworkend:    lea    $555555.l,a2        ;
  95.         move.l    a0,a3
  96.         move.b    kdata(pc),d0        ;get pass2 values
  97.         move.b    1+kdata(pc),d1        ;
  98.         move.b    2+kdata(pc),d2        ;
  99.         add.l    8+kdata(pc),a3        ;uncrunched lenght
  100. kbyteback:    moveq    #0,d7
  101.         move.b    (a1)+,d4
  102.         cmp.b    d0,d4
  103.         beq.s    kbyte1
  104.         cmp.b    d1,d4
  105.         beq.s    kbyte2
  106. ktest2:        move.b    d4,(a0)+
  107.         bra.s    ktest
  108.  
  109. kbyte1:        move.b    (a1)+,d5
  110.         beq.s    ktest2
  111.         move.b    (a1)+,d4
  112.         bra.s    krepeat
  113.  
  114. kbyte2:        move.b    (a1)+,d5
  115.         beq.s    ktest2
  116.         move.b    d2,d4
  117. krepeat:    move.b    d5,d7
  118.         addq.w    #2-1,d7
  119. krepeatloop:    move.b    d4,(a0)+
  120.         dbf    d7,krepeatloop
  121. ktest:        move.w    (a6),$17a(a6)
  122.         cmp.l    a3,a0
  123.         blo.s    kbyteback
  124. kclsrest:    cmp.l    a2,a0        ;bra.s run
  125.         bhs.s    krun
  126.         move.w    (a6),$17a(a6)
  127.         clr.b    (a0)+
  128.         bra.s    kclsrest
  129.  
  130. krun:
  131. dmacon:        move.w    #$7fff,$90(a6)
  132. adkcon:        move.w    #$7fff,$98(a6)
  133. intena:        move.w    #$7fff,$94(a6)
  134. kjump:        pea    $777777.l
  135. status:        move.w    #$0000,-(a7)
  136.         rte
  137.  
  138.         dc.b    "-StoneCracker by Mr. Spiv of CAVE-"
  139.  
  140. kheader_0:    add.l    d0,d0
  141.         bne.s    kno_ovl5
  142.         jsr    (a5)
  143. kno_ovl5:    bcc.s    kheader_00
  144.         addx.w    d1,d1
  145.         add.l    d0,d0
  146.         bne.s    kno_ovl6
  147.         jsr    (a5)
  148. kno_ovl6:    addx.w    d1,d1
  149.         cmp.w    #2,d1
  150.         beq.s    knormaldata
  151.         move.w    d5,d3
  152.         jsr    (a4)
  153.         move.w    d2,d4
  154.         addq.w    #5-1,d4
  155.         move.w    d7,d3
  156.         bra.L    kheader_110
  157.  
  158. knormaldata:    move.w    d6,d3
  159.         jsr    (a4)
  160.         addq.w    #8-1,d2
  161.         move.w    d2,d4
  162.         bra.s    kgetbytes
  163.  
  164. kheader_00:    moveq    #3-1,d3
  165.         jsr    (a4)
  166.         move.w    d2,d4
  167.         subq.w    #1,d4
  168.         and.w    #$0007,d4
  169.  
  170. kgetbytes:    moveq    #8-1,d3
  171.         jsr    (a4)
  172.         move.b    d2,-(a1)
  173.         dbf    d4,kgetbytes
  174.         bra.L    kcontinue
  175.  
  176. kgetnew:    move.l    -(a0),d0        ;jsr (a5)
  177.         move.w    (a6),$17a(a6)
  178.         move.w    #$0010,ccr
  179.         addx.l    d0,d0
  180.         rts
  181.  
  182. krorit:        moveq    #0,d2            ;jsr (a4)
  183. krorloop:    add.l    d0,d0
  184.         bne.s    kno_ovl7
  185.         jsr    (a5)
  186. kno_ovl7:    addx.w    d2,d2
  187.         dbf    d3,krorloop
  188.         rts
  189.  
  190. kdata:
  191.  
  192.